package main

import (
	"fmt"
)

func changeString() {
	s1 := "big"
	// 强制类型转换
	byteS1 := []byte(s1)
	byteS1[0] = 'p'
	fmt.Println(string(byteS1))

	s2 := "白萝卜"
	runeS2 := []rune(s2)
	runeS2[0] = '红'
	fmt.Println(string(runeS2))
	fmt.Println(len(runeS2))
}

func traveralString() {
	s := "hello沙河"
	for i := 0; i < len(s); i++ { //byte
		fmt.Printf("%v(%c) ", s[i], s[i])
	}
	fmt.Println()
	for _, r := range s { // rune
		fmt.Printf("%v(%c)", r, r)
	}
}

func main() {
	// var a = 0b10
	// fmt.Printf("%b ", a)

	// var b = 10
	// fmt.Printf("%d ", b)

	// var c = 0o10
	// fmt.Printf("%o ", c)

	// var d = 0x10
	// fmt.Printf("%x ", d)

	// // fmt.Printf("%f", math.MaxFloat32)
	// // fmt.Printf("%.2f", math.Pi)

	// var c1 complex64
	// c1 = 1 + 2i
	// fmt.Printf("%v", c1)

	// s1 := `
	// 	这些内容长什么样子都会输出的\n\y\t\\
	// `
	// fmt.Println(s1)

	// s1 := "hello" + "world"
	// fmt.Println(s1)
	// fmt.Println(len(s1)) // 11

	// hello := "hello"
	// world := "world"
	// s2 := fmt.Sprintf("%s %s", hello, world)
	// fmt.Println(s2)

	// s3 := strings.Split(s1, "")
	// fmt.Println(s3)

	// fmt.Println(strings.Contains(s1, "ll"))

	// fmt.Println(strings.HasPrefix(s1, "he"))

	// fmt.Println(strings.HasSuffix(s1, "oo"))

	// fmt.Println(strings.Index(s1, "ll"), strings.LastIndex(s1, "d"))

	// fmt.Println(strings.Join(s3, ","))

	// traveralString()
	changeString()
}
